# scripts/init_db.py
#!/usr/bin/env python3
"""
初始化数据库脚本
"""
import os
import sys
from pathlib import Path

# 添加项目根目录到Python路径
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))

def init_database():
    """初始化数据库"""
    from stock_data_system.main import setup_logging, AppConfig, StockDataService
    import logging

    setup_logging(logging.INFO)
    logger = logging.getLogger(__name__)

    print("=" * 50)
    print("数据库初始化脚本")
    print("=" * 50)

    try:
        config = AppConfig()
        service = StockDataService(config.database, config.baostock)

        # 检查数据库连接
        if not service.db_manager.check_connection():
            print("❌ 数据库连接失败！")
            print("请检查：")
            print("1. PostgreSQL服务是否运行")
            print("2. .env文件配置是否正确")
            print("3. 数据库是否存在")
            return 1

        print("✅ 数据库连接成功")

        # 确认操作
        print("\n⚠️  这将创建所有必要的数据库表")
        confirm = input("确认继续吗？(y/N): ")
        if confirm.lower() != 'y':
            print("操作已取消")
            return 0

        # 执行初始化
        print("正在创建数据库表...")
        service.initialize_database()
        print("✅ 数据库初始化完成")

        # 显示创建的表
        db_info = service.db_manager.get_database_info()
        print(f"\n创建的表: {', '.join(db_info.get('tables', []))}")

        return 0

    except Exception as e:
        print(f"❌ 初始化失败: {e}")
        return 1

if __name__ == "__main__":
    sys.exit(init_database())